package negocio;

import conexion.Conexion;
import conexion.Sql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;


public class Proveedor {
    String cod_proveedor;
    String nit_proveedor;
    String nom_proveedor;
    String tel_proveedor;
    String direc_proveedor;
   

    public Proveedor() {
    }

    public Proveedor(String cod_proveedor,String nit_proveedor, String nom_proveedor, String tel_proveedor, String direc_proveedor) {
        this.cod_proveedor = cod_proveedor;
        this.nit_proveedor = nit_proveedor;
        this.nom_proveedor = nom_proveedor;
        this.tel_proveedor = tel_proveedor;
        this.direc_proveedor= direc_proveedor;
        
        
    }

     public String getCod() {
        return cod_proveedor;
    }
    public String getNit() {
        return nit_proveedor;
    }

    public String getNom() {
        return nom_proveedor;
    }
      public String getDirec() {
        return direc_proveedor;
    }
      public String getTel() {
        return tel_proveedor;
    }

      public boolean insertarProveedor(){
        boolean ok=false;
        Conexion conex = new Conexion();
        String sql = "insert into proveedor(cod_proveedor,nit_proveedor,nom_proveedor,direc_proveedor,tel_proveedor) values ('"+cod_proveedor+"','" +nit_proveedor+"','" +nom_proveedor+"','" +direc_proveedor+"','" +tel_proveedor+"')";
        
    if (Sql.ejecuta(sql)==null)
           {
            ok=true;
           }
          else
           {
            System.out.println("NO INSERTO " + Sql.ejecuta(sql));
           }

       return ok;
    }

    public ArrayList listaProveedor()
     {
        ArrayList lista = new ArrayList();
        Conexion conex = new Conexion();
        String sql = "select * from proveedor";
        try
        {
          conex.conectar();
          PreparedStatement st = conex.getConnection().prepareStatement(sql);
          ResultSet rs = st.executeQuery();
          //Recorre el objeto y adiciona los registros a la matriz
          while (rs.next())
          {
              lista.add(new Proveedor(rs.getString(1), rs.getString(2),rs.getString(3), rs.getString(4), rs.getString(5)));
          }
          conex.desconectar();
          }
        
        catch(ClassNotFoundException ex)
          {
            System.out.println(ex);
          }
        
        catch(SQLException ex)
          {
            System.out.println(ex);
          }
        
        return lista;
     }
    
    public ArrayList buscarProveedor(String cod_proveedor) throws ClassNotFoundException
    {
        ArrayList lista = new ArrayList();
        boolean ok=false;
        Conexion conex = new Conexion();
        String sql = "Select * from proveedor where cod_proveedor=?";
        
        try
          {
            conex.conectar();
            PreparedStatement ps = conex.getConnection().prepareStatement(sql);
            ps.setString(1, cod_proveedor);
            ResultSet rs = ps.executeQuery();
           
            while (rs.next())
            {
                lista.add(new Proveedor(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)));
            }
            
             conex.desconectar();
          }
         catch(ClassNotFoundException ex)
          {
            System.out.println(ex);
          } 
         catch(SQLException ex)
        {
            System.out.println(ex);
        }
        return lista;
    }
    
     //Método para eliminar un afiliado
    public void eliminarProveedor(String cod_proveedor)
     {
         String  sql = "DELETE FROM proveedor WHERE cod_proveedor = '" + cod_proveedor +"'";
         Sql.ejecuta(sql);        
     }
    
 public void modificarProveedor()
   {
       
        //Conexion conex = new Conexion();
        String  sql = "UPDATE Proveedor SET nit_proveedor ='" +nit_proveedor+"', nom_proveedor ='" +nom_proveedor+"', direc_proveedor ='" +direc_proveedor+"', tel_proveedor  = '" +tel_proveedor+"' WHERE cod_proveedor ='" +cod_proveedor+"'";
        Sql.ejecuta(sql);
   }
 
 public ArrayList consultarProveedor(String cod_proveedor) throws ClassNotFoundException
    {
        ArrayList lista = new ArrayList();
        boolean ok = false;
        Conexion conex = new Conexion();
        String sql = "Select * from proveedor where cod_proveedor=? ";
        
        try
        {
            conex.conectar();
            PreparedStatement ps = conex.getConnection().prepareStatement(sql);
            ps.setString(1, cod_proveedor);
            ResultSet rs = ps.executeQuery();
            while (rs.next())
            {
                lista.add(new Proveedor(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5))); 
            }
            
           conex.desconectar();
        }
        
        catch(ClassNotFoundException ex)
        {
            System.out.println(ex); 
        } 
         catch(SQLException ex)
        {
            System.out.println(ex); 
        }  
        
        return lista;
    }
}
